home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / ibm / loadall.arc / PROGE2.ASM < prev    next >
Assembly Source File  |  1990-02-12  |  4KB  |  144 lines

  1. RAM         EQU        $0000
  2. REGS         EQU    $1000
  3. Eprom         EQU    $F800
  4. Vectors         EQU    $FFD6
  5. PortA        EQU        REGS+$00
  6. PortC        EQU        REGS+$03
  7. PortB        EQU        REGS+$04
  8. DDRC         EQU        REGS+$07
  9. PortD        EQU        REGS+$08
  10. DDRD         EQU        REGS+$09
  11. PortE        EQU        REGS+$0A
  12. CFORC        EQU        REGS+$0B
  13. TCNT         EQU        REGS+$0E
  14. TOC2         EQU        REGS+$18
  15. TCTL1        EQU        REGS+$20
  16. TCTL2        EQU        REGS+$21
  17. TMSK1        EQU        REGS+$22
  18. TFLG1        EQU        REGS+$23
  19. TMSK2        EQU        REGS+$24
  20. TFLG2        EQU        REGS+$25
  21. PACTL        EQU        REGS+$26
  22. Baud         EQU        REGS+$2B
  23. SCCR2        EQU        REGS+$2D
  24. SCSR         EQU        REGS+$2E
  25. SCDR         EQU        REGS+$2F
  26. ADCTL        EQU        REGS+$30
  27. ADR1         EQU        REGS+$31
  28. ADR2         EQU        REGS+$32
  29. ADR3         EQU        REGS+$33
  30. BPROT        EQU        REGS+$35
  31. OPTION       EQU        REGS+$39
  32. *
  33. *
  34. *
  35. FileLength   EQU     RAM
  36. Address      EQU     RAM+1
  37. RecordLength EQU     RAM+3
  38. *
  39. *
  40. *
  41.              ORG     RAM
  42. Initial      LDS     #$00FF               !Set stack pointer to $FF.
  43.              LDAA    #$00
  44.              STAA    BPROT                !Clear block protect register.
  45.              LDAA    #$30
  46.              STAA    Baud                 !With 8MHz crystal, baud=9600.
  47.              LDAA    #$0C
  48.              STAA    SCCR2                !Transmitter and receiver enabled.
  49.              LDAA    $80
  50.              STAA    PACTL                !Set bit 7 port A as an output.
  51.              LDAA    #$FF
  52.              STAA    DDRC                 !Set port C all bits as outputs.
  53.              STAA    DDRD                 !Set port D bits 0-5 as outputs.
  54. *
  55. *
  56. *
  57. EraseE2Prom  LDAB    #$06                 !This routine erases E2 etc. EEPROM.
  58.              STAB    $103B
  59.              STAB    $F800
  60.              LDAB    #$07
  61.              STAB    $103B
  62.              BSR     DLY10
  63.              CLR     $103B
  64. *
  65. *
  66. *
  67. *ReadyToRec   LDAB    $FF
  68. *             STAB    SCDR
  69. *
  70. *
  71. *
  72. RecFileLen   LDAB    SCSR
  73.              LDAA    PortB
  74.              EORA    #$01
  75.              STAA    PortB
  76.              ANDB    #%00100000           !Check for byte received.
  77.              BEQ     RecFileLen           !Not yet, so wait.
  78.              LDAB    SCDR                 !Get byte.
  79.              STAB    FileLength
  80.              STAB    SCDR
  81. RecNewRec    LDX     #Address
  82.              LDY     #3
  83. RecTranInfo  LDAB    SCSR
  84.              ANDB    #%00100000           !Check for byte received.
  85.              BEQ     RecTranInfo          !Not yet, so wait.
  86.              LDAB    SCDR                 !Get byte.
  87.              STAB    0,X
  88.              INX
  89.              STAB    SCDR                 !Send back to PC to verify.
  90.              DEY
  91.              BNE     RecTranInfo
  92.              LDX     Address
  93.              LDAB    RecordLength
  94.              SUBB    #3                   !Record length contains byte
  95.              CLRA                         ! count for address and checksum.
  96.              XGDY
  97. RecData      LDAB    SCSR
  98.              ANDB    #%00100000
  99.              BEQ     RecData
  100.              LDAB    SCDR
  101.              STAB    SCDR
  102. ProgData     LDAA    #$02
  103.              STAA    $103B
  104.              STAB    0,X
  105.              LDAA    #$03
  106.              STAA    $103B
  107.              BSR     DLY10
  108.              CLR     $103B
  109.              BSR     DLY10
  110.              LDAA    0,X
  111.              CBA
  112.              BNE     ProgData
  113.              STAA    SCDR                 !IBM now knows programmed this byte.
  114.              INX
  115.              DEY
  116.              BNE     RecData
  117.              DEC     FileLength
  118.              BNE     RecNewRec
  119.  
  120.                    !transfer done. need some kind of done exchange.
  121.                    !also need start addres sent or whatever.
  122.  
  123.              JMP     $F800                !TEMP ONLY
  124. *
  125. *
  126. *
  127. DLY10        PSHX
  128.              LDX     #$5000
  129. DLY10Loop    DEX
  130.              BNE     DLY10Loop
  131.              PULX
  132.              RTS
  133. *
  134. *
  135. *
  136. INTTrap      BRA     INTTrap
  137.              RTI
  138. *
  139. *
  140. *
  141. END          EQU     *
  142.              END
  143.  
  144.